obj-m += 1_sleep.o

obj-m += 11_wait_queue.o
11_wait_queue-y = 11_wait_queue_等等队列.o

obj-m += 12_wait_block_read.o
12_wait_block_read-y = 12_wait_queue_等待队列_阻塞read.o

obj-m += 13_wait_queue_poll_wait.o
13_wait_queue_poll_wait-y = 13_wait_queue_等待队列_poll_wait_用户空间select_poll实现.o

obj-m += 14_select.o
# 14_select-y = 14_select.o

obj-m += 21_completion.o
21_completion-y = 21_completion_条件变量.o

obj-m += 22_read_block_util_completion.o
22_read_block_util_completion-y = 22_completion_read阻塞到有数据返回.o

obj-m += 31_workqueue.o
31_workqueue-y = 31_workqueue_工作队列.o

obj-m += 32_workqueue_arg.o
32_workqueue_arg-y = 32_workqueue_工作队列_传递参数.o

obj-m += 41_task_struct.o
41_task_struct-y = 41_kthread_内核线程_task_struct任务队列.o

obj-m += 42_kthread_run.o
42_kthread_run-y = 42_kthread_run_内核线程.o

obj-m += 51_timer.o
51_timer-y = 51_timer_定时器.o

obj-m += 61_tasklet.o
61_tasklet-y = 61_tasklet_软中断.o

obj-m += 62_tasklet.o
62_tasklet-y = 62_tasklet_软中断_示例2.o

obj-m += 63_tasklet.o
63_tasklet-y = 63_tasklet_软中断_传递参数.o

PWD := $(CURDIR)
all:
	$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
	$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean